package com.baomidou.ant.service;

import com.baomidou.ant.entity.ReportOrder;
import com.baomidou.ant.vo.request.*;
import com.baomidou.ant.vo.response.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface IReportOrderService extends IService<ReportOrder> {
    //上报方法
    boolean reportOrder(RequestReportOrderVo requestReportOrderVo);
    //检测数量校验
    boolean checkAmount(RequestReportOrderVo requestReportOrderVo);
    //余数校验
    boolean checkSupply(RequestReportOrderVo requestReportOrderVo);
    //执行人校验
    boolean checkWorker(RequestReportOrderVo requestReportOrderVo);
    //是否上报过工单
    boolean isReported(String orderNum);
    //是否上报过工序
    boolean isNotReportedThis(String orderNum, Integer processId);
    //得到数量
    ResponseListNumVo getNum(String orderNum);
    //得到已报数量
    ResponseListNumOfReportedVo getNumOfReported(RequestReportedNumVo requestReportedNumVo);
    //得到已办
    IPage<ResponseGetMyDoneVo> getMyDone(RequestGetMyDoneVo requestGetMyDoneVo);
    //导出报表功能
    void exportReportInfo(HttpServletResponse response,String[] data);
    //总页数
    int totalSize(RequestDtoVo requestDtoVo);
    //已办信息详情
    ResponseMyDoneInfoVo myDoneInfo(Integer reportId);
    //得到过往上报记录
    List<ReportOrder> queryAllReported(String orderNum, Integer processId);
    //得到过往结束上报记录---通过工单号
    List<ReportOrder> queryByOrderNum(String orderNum);
    //上报记录查询接口
    List<ResponseListReportVo> getReport(List<ReportOrder> reportOrderList);
    //材料查询
    IPage<ResponseCheckOfStuffVo> checkStuff(RequestCheckOfStuffVo vo);
    //机台查询
    IPage<ResponseCheckOfMachineVo> checkMachine(RequestCheckOfMachineVo vo);
    //报工校正方法
    void deleteReport(RequestDeleteReportInfoVo vo);
    //获取当日上报记录
    ResponseTodayDataVo getTodayData(String deptName);
}
